<?php
// +----------------------------------------------------------------------
// | ThinkCMF [ WE CAN DO IT MORE SIMPLE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013-2017 http://www.thinkcmf.com All rights reserved.
// +----------------------------------------------------------------------
// | Author: pl125 <xskjs888@163.com>
// +----------------------------------------------------------------------

namespace api\shop\controller;

use think\queue\Job;
use think\Db;
//商城
class TaskController
{
    public function fire(Job $job, $data){
        //....这里执行具体的任务
        $data = json_decode($data,true);
        if($this->jobDone($data)) {
            $job->delete();
        }else{
            $job->release(3); //$delay为延迟时间
        }
        if ($job->attempts() > 3) {
            //通过这个方法可以检查这个任务已经重试了几次了
        }
        //如果任务执行成功后 记得删除任务，不然这个任务会重复执行，直到达到最大重试次数后失败后，执行failed方法
        // $job->delete();
        // 也可以重新发布这个任务
        // $job->release($delay); //$delay为延迟时间
    }

    public function failed($data){
        // ...任务达到最大重试次数后，失败了
        return Db::name('test')->where('name',$data['order_no'])->update(['thumbnail'=>1]);
    }

    public function jobDone($data){
        return Db::name('test')->where('name',$data['order_no'])->update(['thumbnail'=>2]);
    }
}
